package com.live.service.interfaced;

import java.util.List;


import com.system.util.PageData;


/**  直播接口实现类
@Function
@Author 于泓磊
@Date   2018年1月19日
*/
public interface LiveInManager{
	
	
	/**
	 * 获取直播分类集合
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public List<PageData> getLiveTypeList(PageData pd) throws Exception;

	
	/**
	 * 根据当前要开播用户获取所有开播信息
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getLiveOnlineById(PageData pd) throws Exception;
	
	
	/**
	 * 当主播开播时,将主播信息添加到数据库
	 * @param pd
	 * @throws Exception
	 */
	public void addLiveOnline(PageData pd) throws Exception;
	
	
	/**
	 * 将主播的StreamName放入数据库
	 * @param pd
	 * @throws Exception
	 */
	public void updStreamName(PageData pd) throws Exception;
	
	
	/**
	 * 根据StreamName获取用户封面和标题
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getLiveCoverTitle(PageData pd) throws Exception;
	
	
	/**
	 * 当主播开播时,修改主播信息到数据库
	 * @param pd
	 * @throws Exception
	 */
	public void updLiveOnline(PageData pd) throws Exception;
	
	
	/**
	 * 当主播开播时,检查数据库有无当前主播开播记录
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getCountByUserId(PageData pd) throws Exception;
	
	
	/**
	 * 获取所有主播的经纬度
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public List<PageData>  getNearByPerson(PageData pd) throws Exception;
	
	
	/**
	 * 修改当前用户直播状态(0为未直播,1为直播)
	 * @param pd
	 * @throws Exception
	 */
	public void updUserOnline(PageData pd) throws Exception;
	

	/**
	 * 筛选中开播呗筛选接口
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public List<PageData> getScreenList(PageData pd) throws Exception;
	
	
	
	/**
	 * 查询当前用户的黑咖币数量是否大于扣除数量 
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getBlackCoin(PageData pd) throws Exception;
	
	
	/**
	 * 对用户的黑咖币数量进行操作(增加或者减少)
	 * @param pd
	 * @throws Exception
	 */
	public void updBlackCoin(PageData pd) throws Exception;
	
	
	/**
	 * 直播个人资料上部分个人资料接口
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getUserData(PageData pd) throws Exception;
	
	
	/**
	 * 直播个人资料下部分资料接口
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getDownUserData(PageData pd) throws Exception;
	
	
	/**
	 * 直播页面点击头像显示的简洁个人资料 
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getPithyData(PageData pd) throws Exception;
	
	
	/**
	 * 直播页中'我的'页面接口
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getMineData(PageData pd) throws Exception; 
	
	
	/**
	 * 获取用户粉丝的列表
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public List<PageData> getFansList(PageData pd) throws Exception;
	
	
	/**
	 * 获取用户关注的列表
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public List<PageData> getFocusList(PageData pd) throws Exception;
	
	
	/**
	 * 用户更新签到记录接口
	 * @param pd
	 * @throws Exception
	 */
	public void updCheckIn(PageData pd) throws Exception;
	
	
	/**
	 * 用户添加签到记录接口
	 * @param pd
	 * @throws Exception
	 */
	public void addCheckIn(PageData pd) throws Exception;
	
	
	/**
	 * 查询签到库中有无该用户签到记录
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getCheckIn(PageData pd) throws Exception;
	
	
	/**
	 * 获取该用户签到日期及连续签到天数接口
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getCheckInlog(PageData pd) throws Exception;
	
	
	/**
	 * 对排行榜数据进行更新
	 * @param pd
	 * @throws Exception
	 */
	public void updRankingList(PageData pd) throws Exception;
	
	
	/**
	 * 排行榜数据进行添加
	 * @param pd
	 * @throws Exception
	 */
	public void addRankingList(PageData pd) throws Exception;
	
	
	/**
	 * 查看该用户在排行榜中是否存在给某个主播送礼的记录
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData isExistRanking(PageData pd) throws Exception;
	
	
	/**
	 * 
	 * @Title: getRankingList   
	 * @Description: 获取某个主播总榜单
	 * @param pd
	 * @return
	 * @throws Exception   
	 * @Author: Mr.Yu   
	 * @return: List<PageData> 
	 * @Date:   2018年2月6日     
	 * @throws
	 */
	public List<PageData> getRankingList(PageData pd) throws Exception;
	
	
	/**
	 * 
	 * @Title: getTaskStatus   
	 * @Description: 任务中心用户任务完成情况    
	 * @param pd
	 * @return
	 * @throws Exception   
	 * @Author: Mr.Yu   
	 * @return: PageData 
	 * @Date:   2018年2月23日     
	 * @throws
	 */
	public PageData getTaskStatus(PageData pd) throws Exception;
	
	
	/**
	 * 
	 * @Title: updTaskStatus   
	 * @Description: 修改任务中心用户任务完成情况      
	 * @param pd
	 * @throws Exception   
	 * @Author: Mr.Yu   
	 * @return: void 
	 * @Date:   2018年2月23日     
	 * @throws
	 */
	public void updTaskStatus(PageData pd) throws Exception;
}

